The increasing speed and power of programmable, digital computers such as desk-top or personal computers, has made computer-generated, real-time, three-dimensional, graphical experiences both accessible and popular. Such experiences, generally referred to as "virtual reality", allow the personal computer user to navigate through and interact with computer-generated, three-dimensional virtual worlds. Such programs allow the user to appear to move about or through a virtual world in any number of directions and also allow the user to interact with and manipulate objects in that world, such as by grabbing selected objects, picking them up, carrying, moving or throwing them.
Navigating through and interacting with three-dimensional virtual worlds is generally accomplished by the user through manipulation of a computer input device, typically a mouse, to cause the computer program to perform certain movements or manipulations. This approach suffers from various drawbacks and disadvantages. In particular, the cursor of the mouse moves across the screen generally in only two dimensions, and such two-dimensional motion generally makes navigating and interacting with the three-dimensional virtual world not only difficult, but also counter-intuitive for the average user. The many possible movements available in the three-dimensional virtual worlds, referred to as "degrees of freedom", are thus not easily or intuitively accessible using conventional computer input devices.
Accordingly, there is a need for an apparatus and method which provides intuitive, efficient, and easy-to-use navigation and interaction within three-dimensional virtual worlds.